package _06_Number;

import java.math.BigDecimal;

/**
 * java.math.BigDecimal;
 * 
 * 这个类型精度极高,适合做财务
 * 
 * @author lenovo
 * @Date 2020年7月16日
 * @Time 下午6:29:36
 */
public class Number_02 {

	public static void main(String[] args) {
//		System.out.println(sum(100));

		BigDecimal v1 = new BigDecimal(10);
		BigDecimal v2 = new BigDecimal(20);

		// +
		BigDecimal v3 = v1.add(v2);
		System.out.println(v3);
		// 30

		// -
		v3 = v1.subtract(v2);
		System.out.println(v3);
		// -10

		// *
		v3 = v1.multiply(v2);
		System.out.println(v3);
		// 200

		// /
		v3 = v1.divide(v2);
		System.out.println(v3);
		// 0.5

		// %
		v3 = v1.remainder(v2);
		System.out.println(v3);
		// 10

		System.out.println(sum(100));// 0
		System.out.println(sum(100));
		// 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
	}

	public static long sum(long i) {
		if (i < 1) {
			return 1;
		}
		return i * sum(i - 1);
	}

	public static BigDecimal sum(int i) {
		if (i < 1) {
			return new BigDecimal(1);
		}
		return new BigDecimal(i).multiply(sum(i - 1));
	}
}
